--- title: "阶乘约数" created: 2025-11-28 tags: - 算法 --- # 阶乘约数 ## 题目 [阶乘约数](https://www.lanqiao.cn/paper/3839/problem/1020/) ![[image-b41d77d8.png]] ## 思路分析 约数个数 100的阶乘是1乘到100 那么这些数就都是约数 那么就可以直接用这些约数做质因数分解 利用公式 把一个数N 写成:N = (p1^x1)(p^x2)(p3^x3)…(pk^xk),其中pi为质数 则N的约数个数为:(x1+1)(x2+1)(x3+1)…(xk+1) 直接算出约数个数 ```cpp #include using namespace std; #define endl '\n' unordered_map Weight; int main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); for(int i=1;i<=100;i++){ int x=i; for(int j=2;j<=x/j;j++){ while(x%j==0){ Weight[j]++; x/=j; } } if(x>1) Weight[x]++; } long long res=1; for(auto x:Weight) res*=x.second+1; cout<